/****************************************************************************

 Copyright (C) 2009 Jean Pierre Charalambos. All rights reserved.

 Class contributed by: Juan Carlos León (http://code.google.com/p/maku/).

 This file is part of maku version 0.2.

 http://code.google.com/p/maku/
 email: jpcharalambosh@unal.edu.co

 This file may be used under the terms of the GNU General Public License
 versions 2.0 or 3.0 as published by the Free Software Foundation and
 appearing in the COPYING file included in the packaging of this file.

 This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
 WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.

*****************************************************************************/

#ifndef UNIFORM_H
#define UNIFORM_H

#include <qstring.h>

class Uniform {
    public:
        Uniform();
        Uniform ( QString,int,int,int );
        Uniform ( QString,float,int,int );

        int getValueAsInt ( int );
        float getValueAsFloat ( int );
        QString getName();
        int getType();
        int getSize();

        void setName ( QString );
        void setIntValue ( int,int );
        void setFloatValue ( float,int );

        int getLocation();
    private:
        QString name;
        int type;//either int 1 or float 2
        int size;
        //values
        float xValue;
        float yValue;
        float zValue;
        float wValue;
        int location;
        int limit;//sometimes Opengl returns Huge values to uniforms so anithing bigger this will be set to 0
};

#endif // UNIFORM_H
